package work

import (
	log "github.com/sirupsen/logrus"
	"go-zookeeper-demo/work/test01"
)
//采用了反射，Run+WorkName的方式
func (w *Work) RunTest01() {
	for {
		select {
		// v:管道信息  ok：管道状态
		case v, ok := <-w.Message:
			if !ok || v == "close" {
				// 记录日志  logrus
				log.WithFields(log.Fields{
					"任务名": w.TaskName,
					"工作名": w.WorkName,
					"节点名": w.NodeName,
					"编号":  w.CodeNum,
				}).Info("[退出]我接收到消息，需要退出")
				return
			} else {
				// 运行正常，输出一条日志
				log.WithFields(log.Fields{
					"任务名": w.TaskName,
					"工作名": w.WorkName,
					"节点名": w.NodeName,
					"编号":  w.CodeNum,
				}).Info("[开始]work开始执行任务")
			}
		default:
			log.WithFields(log.Fields{
				"任务名": w.TaskName,
				"工作名": w.WorkName,
				"节点名": w.NodeName,
				"编号":  w.CodeNum,
			}).Info("[运行]每10秒执行一次")
			t01 := test01.Test01{}
			t01.Run()
		}
	}
}
